#include "reg51.h"

#define LED P0_0

#define ADDR0 P1_0
#define ADDR1 P1_1
#define ADDR2 P1_2
#define ADDR3 P1_3
#define ENLED P1_4

int main() {
    unsigned char cnt = 0;

    ENLED = 0;
    ADDR3 = 1;
    ADDR2 = 1;
    ADDR1 = 1;
    ADDR0 = 0;

    TMOD = 0x01;    // 定时器 T0 模式 1
    TH0 = 0xB8;     // 定时器 T0 初始值 0xB800
    TL0 = 0x00;
    TR0 = 1;        // 定时器 T0 启动

    LED = 0x00;
    while (1) {
        if (TF0 == 1) {
            // 定时器 T0 溢出
            TF0 = 0;
            TH0 = 0xB8;     // 定时器 T0 初始值 0xB800
            TL0 = 0x00;
            cnt++;
            if (cnt >= 50) {
                cnt = 0;
                LED = LED ^ 1;  // 注意：这里的取反操作（~）不成功，所以使用异或操作
            }
        }
    }

}
